package com.heiye.blog.ai.advisor;

import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import reactor.core.publisher.Flux;

/**
 * @author: heiye
 * @date: 2025/11/09 下午9:30
 * @version: v1.0.0
 * @description:
 */
public interface DashScopeAdvisor {

    /**
     * 处理请求参数
     *
     * @param generationParam
     * @return
     */
    GenerationParam adviseRequest(GenerationParam generationParam);

    /**
     * 处理流式响应
     *
     * @param fluxResult
     * @return
     */
    Flux<GenerationResult> adviseStream(Flux<GenerationResult> fluxResult);

    /**
     * 执行顺序
     */
    int getOrder();
}